/*
*
* Copyright (C) 2004 - 2008 BitLaboratory (see http://www.bitlaboratory.com)
* All rights reserved. 
*
* Redistribution and use in source and binary forms, with or without modification, 
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
*    this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
*    this list of conditions and the following disclaimer in the documentation
*    and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
*    derived from this software without specific prior written permission. 
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
* SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
* OF SUCH DAMAGE.
*
* You can find the latest version of this library at http://www.bitlaboratory.com
*
*/


using System;
using System.Runtime.InteropServices;

namespace BitLaboratory.Win32Api.CommonControls
{
	/// <summary>
	/// 
	/// </summary>
	[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]
	public struct ToolbarNotifications
	{
		public static int TBN_GETBUTTONINFO;
		public static int TBN_GETDISPINFO;
		public static int TBN_GETINFOTIP;

		public const int TBN_FIRST             =  (0-700);
		public const int TBN_LAST              =  (0-720);
		public const int TBN_GETBUTTONINFOA    =  ((int)TBN_FIRST-0);
		public const int TBN_BEGINDRAG         =  ((int)TBN_FIRST-1);
		public const int TBN_ENDDRAG           =  ((int)TBN_FIRST-2);
		public const int TBN_BEGINADJUST       =  ((int)TBN_FIRST-3);
		public const int TBN_ENDADJUST         =  ((int)TBN_FIRST-4);
		public const int TBN_RESET             =  ((int)TBN_FIRST-5);
		public const int TBN_QUERYINSERT       =  ((int)TBN_FIRST-6);
		public const int TBN_QUERYDELETE       =  ((int)TBN_FIRST-7);
		public const int TBN_TOOLBARCHANGE     =  ((int)TBN_FIRST-8);
		public const int TBN_CUSTHELP          =  ((int)TBN_FIRST-9);
		public const int TBN_DROPDOWN          =  ((int)TBN_FIRST - 10);
		public const int TBN_GETOBJECT         =  ((int)TBN_FIRST - 12);

		public const int TBN_HOTITEMCHANGE     =  ((int)TBN_FIRST - 13);
		public const int TBN_DRAGOUT           =  ((int)TBN_FIRST - 14);
		public const int TBN_DELETINGBUTTON    =  ((int)TBN_FIRST - 15); 
		public const int TBN_GETDISPINFOA      =  ((int)TBN_FIRST - 16);
		public const int TBN_GETDISPINFOW      =  ((int)TBN_FIRST - 17); 
		public const int TBN_GETINFOTIPA       =  ((int)TBN_FIRST - 18);
		public const int TBN_GETINFOTIPW       =  ((int)TBN_FIRST - 19);
		public const int TBN_GETBUTTONINFOW    =  ((int)TBN_FIRST - 20);
		public const int TBN_RESTORE           =  ((int)TBN_FIRST - 21);
		public const int TBN_SAVE              =  ((int)TBN_FIRST - 22);
		public const int TBN_INITCUSTOMIZE     =  ((int)TBN_FIRST - 23);


		static ToolbarNotifications()
		{
			if( Marshal.SystemDefaultCharSize == 1 ) 
			{
				TBN_GETBUTTONINFO = TBN_GETBUTTONINFOA;
				TBN_GETDISPINFO = TBN_GETDISPINFOA;
				TBN_GETINFOTIP = TBN_GETINFOTIPA;
				return;
			}
			TBN_GETBUTTONINFO = TBN_GETBUTTONINFOW;
			TBN_GETDISPINFO = TBN_GETDISPINFOW;
			TBN_GETINFOTIP = TBN_GETINFOTIPW;
		}
	}
}
